package cn.jy.map.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import cn.jy.map.domain.AddressMsg;
import cn.jy.map.domain.AllGjzCollSituation;
import cn.jy.map.domain.GjzLc;
import cn.jy.map.domain.ProviderType;
import cn.jy.map.domain.RegisterGtt;

public interface GjzDzJwdService {
	
	/**
	 * 鑾峰彇鍦板尯涓嬮潰鐨勬墍鏈変埂鏉戠骇鐨勭粡绾害锛屾牴鎹湴鍖虹紪鍙�<br/>
	 * <pre>
	 * 濡傛灉 isRegist 涓� 1 锛屽垯鐪� date 鏄惁涓簄ull锛�
	 * 	濡傛灉date涓嶄负null锛屽垯鑾峰彇 鏃ユ湡涓篸ate閭ｅぉ鐧昏鐨勬墍鏈� 鑰佹祮鍛�
	 * 	濡傛灉date 涓� null锛屽垯鑾峰彇绯荤粺鏃堕棿杩欏ぉ鐧昏鐨勬墍鏈� 鑰佹祮鍛�
	 * 
	 * 濡傛灉 isResist 涓� 0 鎴栦负null锛屽垯鐪嬪垯鐪� date 鏄惁涓簄ull锛�
	 * 	濡傛灉date涓嶄负null锛屽垯鑾峰彇 鏃ユ湡涓篸ate閭ｅぉ寤烘。鐨� 鏂版祮鍛�
	 * 	濡傛灉date涓簄ull锛屽垯鑾峰彇杩欎釜鍖哄煙涓嬮潰鎵�鏈夌殑 鑰佹祮鍛�
	 * 
	 * 濡傛灉lookBeginGjz = 1 锛屽垯鐪媎ate鏄惁涓簄ull
	 * 	濡傛灉date涓嶄负null锛屽垯鑾峰彇 鏃ユ湡涓篸ate閭ｅぉ鐧昏鐨� 浠庣涓�涓櫥璁板埌绗竴涓綋妫�杩欎釜鏃堕棿鍖哄煙鐨勬祮鍛樸��
	 * 	濡傛灉date涓簄ull锛屽垯鑾峰彇鏃ユ湡涓虹郴缁熸棩鏈熻繖澶╃櫥璁扮殑浠庣涓�涓櫥璁板埌绗竴涓綋妫�杩欎釜鏃堕棿鍖哄煙鐨勬祮鍛樸��
	 * 
	 * </pre>
	 * @param code 锛� 鍦板尯缂栧彿
	 * @param date 锛� 寤烘。鏃ユ湡
	 * @param isRegist 锛� 鏄惁鏄櫥璁�
	 * @param lookBeginGjz 锛� 鏄惁鏌ョ湅鏌愪竴澶╃殑寰堟棭灏辨潵鐧昏鐨勬祮鍛�
	 * 
	 * @return
	 */
	List<AddressMsg> getDzJwdList(String code,String date,String isRegist,String lookBeginGjz);
	
	/**
	 * 鏍规嵁鍦板潃锛岃幏鍙栬繖涓湴鍧�涓嬮潰鎸囧畾鐧昏鐨勬祮鍛樼殑鐢樼壒鍥�
	 * <pre>
	 * 	濡傛灉 isNew 涓� 1 锛屽垯鑾峰彇杩欎釜鍦板尯涓嬫寚瀹氭棩鏈熺殑鏂版祮鍛樼殑鐢樼壒鍥�
	 *  濡傛灉 isNew 涓簄ull鎴栬�呭叾浠栵紝鍒欒幏鍙栬繖涓湴鍖轰笅鎸囧畾鏃ユ湡鐨勬墍鏈夌櫥璁扮殑 鑰佹祮鍛橈紙寤烘。鏃ユ湡鍦ㄤ粖澶╀箣鍓嶇殑锛夌殑鐢樼壒鍥�
	 *  濡傛灉date涓簄ull锛屽垯榛樿涓虹郴缁熸椂闂�
	 * </pre>
	 * @param address 锛氬湴鍧�
	 * @param date 锛氱櫥璁版椂闂�
	 * @param isNew 锛氭槸鍚︽柊娴嗗憳
	 * @return
	 * @throws Exception 
	 */
	List<RegisterGtt> getRetisterGtt(String address,String date,String isNew) throws Exception;
	
	/**
	 * 鑾峰彇浼︽琛�
	 * <pre>
	 * 	濡傛灉date涓嶄负null锛屽垯鑾峰彇杩欎釜鍦板尯涓嬮潰鐨勪粖澶╃櫥璁扮殑鑰佹祮鍛樼殑杞琛�
	 * 	濡傛灉date涓簄ull锛屽垯鑾峰彇杩欎釜鍦板尯涓嬮潰鐨勬墍鏈夎�佹祮鍛橈紙寤烘。鏃ユ湡鍦ㄤ粖澶╀箣鍓嶇殑锛夌殑杞琛�
	 * 	濡傛灉address涓簄ull锛屽垯鑾峰彇鎸囧畾鏃ユ湡涓嬮潰鎵�鏈夎繘绔欎汉鍛樼殑杞琛�
	 * </pre>
	 * @param address
	 * @param date
	 * @return
	 * @throws Exception
	 */
	List<GjzLc> getGjzLc(String address,String date) throws Exception;
	
	/**
	 * 鑾峰彇杞琛紝鏍规嵁娴嗗憳绫诲瀷鍜屾潙钀斤紝榛樿涓鸿幏鍙栧叏閮ㄧ被鍨嬪叏閮ㄦ潙钀界殑杞
	 * @return
	 * @throws Exception
	 */
	List<GjzLc> getGjzLc_ta(String type,String address) throws Exception;
	/**
	 * 鑾峰彇绉瀬娴嗗憳鐨勪鸡娆¤〃
	 * <pre>
	 * 	濡傛灉date涓嶄负null锛屽垯鑾峰彇杩欎釜鍦板尯涓嬮潰鐨勪粖澶╃櫥璁扮殑绉瀬娴嗗憳鐨勮疆娆¤〃
	 * 	濡傛灉date涓簄ull锛岄粯璁や负褰撳墠绯荤粺鏃堕棿
	 * </pre>
	 * @param address
	 * @param date
	 * @return
	 * @throws Exception
	 */
	List<GjzLc> getJijGjzLc(String address,String date) throws Exception;
	
	
	void loadGjzDzJwdData();

	/**
	 * 鑾峰彇绉瀬娴嗗憳鐧昏鐨勭敇鐗瑰浘
	 * @param address
	 * @param date
	 * @return
	 */
	List<RegisterGtt> getJijRetisterGtt(String address, String date);
	
	/**
	 * 鑾峰彇褰撳墠杞
	 * @return
	 */
	String getThisRound();
	
	/**
	 * 鑾峰彇鎵�鏈変緵娴嗚�呯殑閲囨祮鎯呭喌
	 * @param date
	 * @return
	 */
	AllGjzCollSituation getAllGjzCollSituation(String date);

	/**
	 * 鏍规嵁娴嗗憳绫诲瀷锛岀湅涓嶅悓绫诲瀷鐨勬祮鍛樼殑鍦板煙鏁版嵁<br/>
	 * 渚涙祮鑰呯被鍨嬶細<br/>
	 * &nbsp;&nbsp;&nbsp;	1锛氬繝璇氭祮鍛橈紝2锛氭湇鍔℃祮鍛橈紝3锛氫粖骞存柊娴嗗憳锛�4锛氫紤鐪犳祮鍛橈紝5锛氭祦澶辨祮鍛橈紝6锛氶摼鎺ユ祮鍛橈紝7锛氭湭閾炬帴娴嗗憳
	 * @param gjzType锛�
	 * @param date
	 * @return
	 */
	
	List<AddressMsg> getAllGjzDzJwdBySituation(int gjzType,String date);
	
	/**
	 * 鑾峰彇娴嗗憳鐨勬墍鏈夌被鍨嬬殑鍦板煙鏁版嵁
	 * @param date
	 * @return
	 */
	Map<String ,List<AddressMsg>> getAllGjzDzJwdBySituation(String date);
	
	/**
	 * 鑾峰彇閲嶇偣鏉戣惤
	 * @param date
	 * @return
	 */
	Map<String,List<AddressMsg>> getKeyVillageDzJwd();
	

	/**
	 * 鏍规嵁娴嗗憳鐨勪笉鍚岀被鍨嬶紝鑾峰彇渚涙祮鑰呯殑杞琛�
	 * @param gjzType
	 * @param date
	 * @param address
	 * @return
	 */
	List<GjzLc> getGjzLcBySituation(int gjzType, String date, String address);
	
	public List<ProviderType> getProviderTypes(String villageName);
}
